Care to explain what is Custom Normals?
The official explanation is:
The normal is the direction perpendicular to the face at a
particular point. If all vertices in a face have the same normal,
the face will look flat. If used appropriately, you can give the
illusion of a curved face by specifying different normals per
vertex, but using the same normal on all vertices that share the
same spatial coordinate - across multiple faces. If left all zero,
the normal will be calculated automatically.
Developing for
openBVE: The .csv Object Format,
http://openbve.trainsimcentral.co.uk/develop/object_csv.html#addvertex
In other words, a function for developers to create
smooth-looking curved faces, with less polygons.
Here's a comparison:

Rail Sim Routes UK:
Blog: [...]3D Cabs (openBVE v1.1 Development Branch)[...]
5th July 2009
http://railsimroutes.net/blog/?p=885
Here, you can see 3 sets of images showing the traction handle
of a 3D cab in the different stages of development.
The top set of 2 images, showing the method used to hand code
the handle, and the bottom image, showing the end product, can be
ignored.
The middle set is the important one, shows the difference
between the same object, without (left) and with (right)
the use of custom normals.
Hope this helps,